package com.aierjun.sqlaitivity;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBHelper extends SQLiteOpenHelper {

    public final static String DB_NAME="Test.db";  //数据库名称
    public final static String TABLE_NAME="test";  // 表名称
    public final static String FIELD_ID="_id";      //主键
    public final static String FIELD_EVENT_NAME="evenName";   //表列名
    public final static String FIELD_REMIND_TIME="remindTime";  //表列名


    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context,DB_NAME, factory, version);
        //第一个参数是context上下文
        // 第二个参数是数据库名，
        // 第三个参数是游标工厂，用来产生游标，作用是对查询的结果集进行随机访问，传入null代表使用系统默认的游标对象
        //第四个是版本号。可以用常量定义（如：private static final int DB_VERSION = 2;）
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql="create table "
                +TABLE_NAME+"("
                +FIELD_ID+" integer primary key, "
                +FIELD_EVENT_NAME+" varchar,"
                +FIELD_REMIND_TIME+" varchar)";
        Log.d("JunLog","onCreate");
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {  //数据库文件的版本号发生变更时调用

    }

    public  void insert(String myEventName, String myRemindTime){  //插入数据
        SQLiteDatabase db =this.getWritableDatabase();
        ContentValues cv=new ContentValues();
        cv.put(FIELD_EVENT_NAME,myEventName);
        cv.put(FIELD_REMIND_TIME,myRemindTime);
        db.insert(TABLE_NAME,null,cv);
        db.close();
        Log.d("JunLog","Insert data");
    }

    public void updata(int id,String newEventName,String newRemindTime){  //插入列
        SQLiteDatabase db=this.getWritableDatabase();
        String where=FIELD_ID+"=?";
        String[] whereValue={Integer.toString(id)};
        ContentValues cv=new ContentValues();    //各个字段的数据使用ContentValues进行存放
        cv.put(FIELD_EVENT_NAME,newEventName);
        cv.put(FIELD_REMIND_TIME,newRemindTime);
        db.update(TABLE_NAME,cv,where,whereValue);
        Log.d("JunLog","Modify data");
    }

    public void delete(int id){                         //删除行数据（指定id的行的数据）
        SQLiteDatabase db=this.getWritableDatabase();
        String where=FIELD_ID+"=?";
        String[] whereValue={Integer.toString(id)};
        db.delete(TABLE_NAME,where,whereValue);
        Log.d("JunLog","Delete data");
    }

    public boolean deleteDBByName(String DBName){          //删除数据库
        Context context=null;
        context.deleteDatabase(DBName);
        return  false;
    }

    public Cursor getCursor(){                               //获取游标（理解为找到表）
        SQLiteDatabase db=this.getWritableDatabase();
        Cursor cursor=db.query(TABLE_NAME  ,null,null,null,null,null,null);
        return cursor;
    }
    public Cursor quare(int id){                            //查询（id下的列的数据）
        SQLiteDatabase db=this.getWritableDatabase();
        String where=FIELD_ID+"=?";
        String[] whereValue={Integer.toString(id)};
        Cursor cursor=db.query(TABLE_NAME,
                new String[]{"_id","eventName","remindTime"},
                where,whereValue,null,null,null);
        return cursor;
    }
}